リバースエンジニアリングとは?りばーすえんじにありんぐ
リバースエンジニアリングとは、出来上がったソフトウェアやデータベースを解析して、仕様や設計の情報を取り出すこと。開発の流れ(設計 → 作る)を逆向きにたどる。fe では、稼働中のデータベースの定義から E-R 図(データどうしの関係を線で結んだ図)を起こす例がよく出る。
最終更新:2026-10-10
この語が出る過去問を解く →背景
長く使われたシステムは、設計書が失われたり、プログラムと食い違ったりしている。作り直しや保守の前に「いま実際どう作られているか」を知る必要があり、そのために使う。
具体例
設計書が残っていない社内の在庫管理システムを作り直すとき、モデリングツールにデータベースの定義を読み込ませ、テーブルと主キー・外部キーの関係を E-R 図として自動で描き出す。
試験での引っ掛け
「解析すれば他社製品をまねて売ってよい」わけではない。解析の結果をもとに権利者の許可なく開発・販売すると知的財産権を侵害しうるし、利用許諾契約で解析を禁じている製品もある。また、取り出した情報で作り直すところまで含めた流れはリエンジニアリングで、別の語。
関連用語
出た過去問
出典:平成28年度 秋期 基本情報技術者試験 午前 問50(IPA)
モデリングツールを使用して,本稼働中のデータベースの定義情報からE-R図などで表現した設計書を生成する手法はどれか。
正解:リバースエンジニアリング
要点:リバースエンジニアリングは実装から設計情報を復元する
リバースエンジニアリングは、完成した成果物を解析して仕様や設計情報を取り出す手法である。本問のように稼働中のデータベースの定義情報から E-R図などの設計書を起こす作業がこれにあたる。逆に設計書から実装を生成していくのがフォワードエンジニアリングである。
出典:平成29年度 秋期 基本情報技術者試験 午前 問50(IPA)
ソフトウェアのリバースエンジニアリングの説明はどれか。
正解:既存のソフトウェアを解析し、その仕様や構造を明らかにする。
要点:リバースエンジニアリングは既存コードから設計情報を復元する
リバースエンジニアリングは、既存のソースコードや実行可能ファイルを解析して、そこから設計仕様や構造といった上流の情報を復元する作業である。設計情報が失われた古いシステムの保守や再構築の前段として行われる。設計からコードを生成するフォワードエンジニアリングとは向きが逆になる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。